`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 			Arizona State University
// Engineer: 			Joe Boeding
// 						Taylor Wood
//
// Create Date:    	14:44:55 03/01/2013 
// Design Name: 		NOR
// Module Name:    	nor_cmos 
// Project Name: 		LAB #1
// Target Devices: 	Xilinx Spartan6 XC6LX16-CS324
// Tool versions: 	Xilinx ISE 14.2
// Description: 		
//		Using "pmos" and "nmos" Verilog switch-level primitives 
//		create a module named "NOR" gate
//
// Dependencies: 		NONE
//
// Revision: 		
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module button_handler # (parameter SIGHYS_ON = 60000, SIGHYS_OFF = 35000)(
    input switch,
    input clk,
    input reset_b,
    output positive_edge
    );
	 
	 // output from module sig_hys
	 wire sig;
	 
	 defparam i_sig_hys.TURN_ON_CLOCK_COUNT = SIGHYS_ON;		// parameter override
	 defparam i_sig_hys.TURN_OFF_CLOCK_COUNT = SIGHYS_OFF;	// parameter override
	 
	 // signal hysteresis module
	 sig_hys i_sig_hys(.dir_sig(switch),
							 .clk(clk),
							 .reset_b(reset_b),
							 .fil_sig(sig));
	 // PED module
	 PED i_ped(.sig(sig),
				  .clk(clk),
				  .reset_b(reset_b),
				  .pulse(positive_edge));
	 
endmodule
